package com.school.chapter01.homework;

public class Delete_ai {

    @SuppressWarnings({"all"})
    class Node {
        private Node prev;
        private Node next;
    }
    //删除双向链表元素ai，现在指针P指向ai
    public void deleteNode(Node P) {
//        //看是否是头节点，如果是直接置空，并把下一个设为头节点
//        if (P == header) {
//            header = P.next;
//            P = null;
//            return;
//        }
        Node prev = null;//prev是ai前面的节点
        prev = P.prev;
        prev.next = P.next;
        if (P.next != null)
            P.next.prev = prev;
        P.next = null;
        P.prev = null;
    }

    //删除双向链表元素ai，现在指针P指向ai + 1
    public void deleteNode2(Node P){
        //看ai是否是头节点，如果是直接置空，并把下一个设为头节点
//        if (P.prev == header) {
//            header = P;
//            P.prev = null;
//            return;
//        }
        Node ai = null;
        ai = P.prev;//P的前面是ai
        ai.prev.next = P;
        P.prev = ai.prev;
        ai.prev = null;
        ai.next = null;
    }

//    public Node getNodeByIndex(int P) {
//        if (P <= size / 2) {
//            Node current = header;
//            for (int i = 0; i < P; i++) {
//                current = current.next;
//            }
//            return current;
//        } else {
//            Node current = tail;
//            for (int i = size; i > P; i--) {
//                current = current.perv;
//            }
//            return current;
//        }
//    }
//    //    Node lnext = getNodeByIndex(P - 1);
//    lnext.next =ai.next;
//    ai.next.perv =lnext;

}
